//引入gulp
let gulp = require('gulp');

let connect = require('gulp-connect');

let rev = require('gulp-rev');//对文件名，添加MD5后缀
let revAppend = require('gulp-rev-append');//给url，添加MD5版本号
let revCollector = require('gulp-rev-collector');//路径替换
let replace = require('gulp-replace');//地址替换
let runSequence = require('gulp-run-sequence');//同步执行包
let revFormat = require('gulp-rev-format');
let revReplace = require('gulp-rev-replace');

let clear = require('gulp-clean');


gulp.task('copy',function () {
    console.log('copy新的源文件')
    return gulp.src('src/**/*')
        .pipe(gulp.dest('./dist'))
})


//生成版本号的清单
gulp.task('rev',function () {
    console.log('版本号的生成')
    return gulp.src(['./dist/css/*.css','./dist/js/*.js'])
        .pipe(rev())
        .pipe(revFormat({
            prefix:false, // 在版本号前增加字符
            suffix:false, // 在版本号后增加字符
            lastExt: true
        }))
        .pipe(rev.manifest())
        .pipe(gulp.dest('./dist/config/'))

})

/*路径的替换*/
gulp.task('update-version',function () {
    console.log('版本号的添加')
    return gulp.src(['./dist/config/*.json','./dist/*.html'])
        .pipe(revCollector())//根据json进行文件的替换
        .pipe(gulp.dest('./dist/'))
})
//清除先前文件 --(删除文件，慎用)
gulp.task('clean',function () {
    console.log('清除文件')
    gulp.src(['./dist/'])
        .pipe(clear());
})

//启动服务
gulp.task('service',function () {
    console.log('测试这里进入没')
    connect.server({
        host:'0.0.0.0',
        port:8080,
        open:true
    })
})


gulp.task('getCode',function (callback) {
    runSequence(
        'clean',
        'copy',
        'rev',
        'update-version',
        callback
    )
});//执行getCode，依次执行清除源文件，copy新的源文件,产生新的版本号，添加版本号

gulp.task('default',['service']);
